#ifndef POSITION_H_
#define POSITION_H_

#include <vector>

class Position
{
public:
    Position();
    Position(int x, int y);
    virtual ~Position();

    Position operator+(const Position& other) const;
    Position operator-(const Position& other) const;
    Position operator-() const;

    bool operator==(const Position& other) const;
    bool operator!=(const Position& other) const;

    Position move(const Position& delta) const;
    Position scale(double factor) const;
    Position rotateCWAround(const Position& origin) const;
    Position rotateCCWAround(const Position& origin) const;

    int x;
    int y;
};

typedef std::vector<Position> Positions;

#endif
